Method and apparatus for instant messaging prioritization

ABSTRACT

A method, apparatus, and computer instructions for indicating wait time for instant messages. An elapsed time since a response has been sent to a recipient in a chat session being displayed in a user interface is identified. A visual indication of the elapsed time is generated through the user interface. The indication indicates the elapsed time since the response has been sent to the recipient in the chat session.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relate generally to an improved data processingsystem, and in particular to a method and apparatus for processing data.Still more particularly, the present invention relates to a method,apparatus, and computer instructions for managing instant messagingdata.

2. Description of Related Art

Instant messaging is an online chat medium, allowing users tocommunicate with each other and collaborate in real-time over a networkdata processing system. Instant messaging is commonly used over theInternet. Instant messaging applications monitor and report the statusof users that have established each other as online contacts. Thisinformation is typically presented to a user in a window. Instantmessaging applications also are often used by users conducting business.By utilizing instant messaging, business users can view each other'savailability and initiate a text conversation with colleagues orcustomers when a desired contact becomes available.

Typically, with instant messaging applications, communications betweenusers are initiated by users selecting the name of the person with whichthey desire to communicate. Then, the users type messages in a dialogbox in the window and press “send”. These messages appear instantly onthe other selected recipient's computer.

Until now, instant messaging has been developed largely for home users,but used by home and business users alike. Instant messaging allows anorganization to deploy and utilize this “need-to-have” technology in abusiness setting.

Users may have multiple instant messaging sessions occurring at the sametime. An instant messaging session also is referred to as a chatsession. A user may have, for example, twenty windows for twentydifferent chat sessions displayed on the screen. Managing all of thesechat sessions can be difficult. The user is able to identify whom theuser owes responses to through various indicators, such as a flashingwindow or icon on a tool tray. The user, however, is unable to determinehow long a recipient in a chat session has been waiting for a responsewith respect to other recipients for other chat sessions with the userthrough currently available instant messaging systems. As a result, theuser may respond to some parties sooner than others.

Therefore, it would be advantageous to have an improved method,apparatus, and computer instructions for managing instant messagingsessions.

SUMMARY OF THE INVENTION

The present invention provides a method, apparatus, and computerinstructions for indicating wait time for instant messages. An elapsedtime since a response has been sent to a recipient in a chat sessionbeing displayed in a user interface is identified. A visual indicationof the elapsed time is generated through the user interface. Theindication indicates the elapsed time since the response has been sentto the recipient in the chat session.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is a pictorial representation of a network of data processingsystems in which the present invention may be implemented;

FIG. 2 is a block diagram of a data processing system that may beimplemented as a server in accordance with a preferred embodiment of thepresent invention;

FIG. 3 is a block diagram illustrating a data processing system in whichthe present invention may be implemented;

FIG. 4 is a diagram of an instant messaging system in accordance with apreferred embodiment of the present invention;

FIG. 5 is a diagram illustrating components used in an instant messagingsystem in accordance with a preferred embodiment of the presentinvention;

FIG. 6 is a diagram illustrating graphical indications based on elapsedtime in accordance with a preferred embodiment of the present invention;

FIG. 7 is a flowchart of a process for managing timers for chat sessionsin accordance with a preferred embodiment of the present invention; and

FIG. 8 is a flowchart of a process for generating indications for a chatsession in accordance with a preferred embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a network of data processing systems in which thepresent invention may be implemented. Network data processing system 100is a network of computers in which the present invention may beimplemented. Network data processing system 100 contains a network 102,which is the medium used to provide communications links between variousdevices and computers connected together within network data processingsystem 100. Network 102 may include connections, such as wire, wirelesscommunication links, or fiber optic cables.

In the depicted example, server 104 is connected to network 102 alongwith storage unit 106. In addition, clients 108, 110, and 112 areconnected to network 102. These clients 108, 110, and 112 may be, forexample, personal computers or network computers. In the depictedexample, server 104 provides data, such as boot files, operating systemimages, and applications to clients 108-112. Clients 108, 110, and 112are clients to server 104. Network data processing system 100 mayinclude additional servers, clients, and other devices not shown. In thedepicted example, network data processing system 100 is the Internetwith network 102 representing a worldwide collection of networks andgateways that use the Transmission Control Protocol/Internet Protocol(TCP/IP) suite of protocols to communicate with one another. At theheart of the Internet is a backbone of high-speed data communicationlines between major nodes or host computers, consisting of thousands ofcommercial, government, educational and other computer systems thatroute data and messages. Of course, network data processing system 100also may be implemented as a number of different types of networks, suchas for example, an intranet, a local area network (LAN), or a wide areanetwork (WAN). FIG. 1 is intended as an example, and not as anarchitectural limitation for the present invention.

Referring to FIG. 2, a block diagram of a data processing system thatmay be implemented as a server, such as server 104 in FIG. 1, isdepicted in accordance with a preferred embodiment of the presentinvention. Data processing system 200 may be a symmetric multiprocessor(SMP) system including a plurality of processors 202 and 204 connectedto system bus 206. Alternatively, a single processor system may beemployed. Also connected to system bus 206 is memory controller/cache208, which provides an interface to local memory 209. I/O Bus Bridge 210is connected to system bus 206 and provides an interface to I/O bus 212.Memory controller/cache 208 and I/O Bus Bridge 210 may be integrated asdepicted.

Peripheral component interconnect (PCI) bus bridge 214 connected to I/Obus 212 provides an interface to PCI local bus 216. A number of modemsmay be connected to PCI local bus 216. Typical PCI bus implementationswill support four PCI expansion slots or add-in connectors.Communications links to clients 108-112 in FIG. 1 may be providedthrough modem 218 and network adapter 220 connected to PCI local bus 216through add-in connectors. Additional PCI bus bridges 222 and 224provide interfaces for additional PCI local buses 226 and 228, fromwhich additional modems or network adapters may be supported. In thismanner, data processing system 200 allows connections to multiplenetwork computers. A memory-mapped graphics adapter 230 and hard disk232 may also be connected to I/O bus 212 as depicted, either directly orindirectly.

Those of ordinary skill in the art will appreciate that the hardwaredepicted in FIG. 2 may vary. For example, other peripheral devices, suchas optical disk drives and the like, also may be used in addition to orin place of the hardware depicted. The depicted example is not meant toimply architectural limitations with respect to the present invention.

The data processing system depicted in FIG. 2 may be, for example, anIBM eServer pSeries system, a product of International Business MachinesCorporation in Armonk, N.Y., running the Advanced Interactive Executive(AIX) operating system or LINUX operating system.

With reference now to FIG. 3, a block diagram illustrating a dataprocessing system is depicted in which the present invention may beimplemented. Data processing system 300 is an example of a clientcomputer. Data processing system 300 employs a peripheral componentinterconnect (PCI) local bus architecture. Although the depicted exampleemploys a PCI bus, other bus architectures such as Accelerated GraphicsPort (AGP) and Industry Standard Architecture (ISA) may be used.Processor 302 and main memory 304 are connected to PCI local bus 306through PCI Bridge 308. PCI Bridge 308 also may include an integratedmemory controller and cache memory for processor 302. Additionalconnections to PCI local bus 306 may be made through direct componentinterconnection or through add-in boards. In the depicted example, localarea network (LAN) adapter 310, small computer system interface (SCSI)host bus adapter 312, and expansion bus interface 314 are connected toPCI local bus 306 by direct component connection. In contrast, audioadapter 316, graphics adapter 318, and audio/video adapter 319 areconnected to PCI local bus 306 by add-in boards inserted into expansionslots. Expansion bus interface 314 provides a connection for a keyboardand mouse adapter 320, modem 322, and additional memory 324. SCSI hostbus adapter 312 provides a connection for hard disk drive 326, tapedrive 328, and CD-ROM drive 330. Typical PCI local bus implementationswill support three or four PCI expansion slots or add-in connectors.

An operating system runs on processor 302 and is used to coordinate andprovide control of various components within data processing system 300in FIG. 3. The operating system may be a commercially availableoperating system, such as Windows XP, which is available from MicrosoftCorporation. An object oriented programming system such as Java may runin conjunction with the operating system and provide calls to theoperating system from Java programs or applications executing on dataprocessing system 300. “Java” is a trademark of Sun Microsystems, Inc.Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as hard disk drive 326, and may be loaded into main memory 304 forexecution by processor 302.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 3 may vary depending on the implementation. Other internal hardwareor peripheral devices, such as flash read-only-memory (ROM), equivalentnonvolatile memory, or optical disk drives and the like, may be used inaddition to or in place of the hardware depicted in FIG. 3. Also, theprocesses of the present invention may be applied to a multiprocessordata processing system.

As another example, data processing system 300 may be a stand-alonesystem configured to be bootable without relying on some type of networkcommunication interfaces As a further example, data processing system300 may be a personal digital assistant (PDA) device, which isconfigured with ROM and/or flash ROM in order to provide non-volatilememory for storing operating system files and/or user-generated data.

The depicted example in FIG. 3 and above-described examples are notmeant to imply architectural limitations. For example, data processingsystem 300 also may be a notebook computer or hand held computer inaddition to taking the form of a PDA. Data processing system 300 alsomay be a kiosk or a Web appliance.

The present invention provides a method, apparatus, and computerinstructions for managing chat sessions in an instant messaging system.The mechanism of the present invention identifies an elapsed time sincea response or reply has been sent to a recipient in a chat sessiondisplayed in a user interface. An identification of the elapsed time isgenerated through a user interface. This indication provides anindication of the elapsed time that has passed since a response has beensent to the recipient or other party in a chat session.

The present invention recognizes that some currently available instantmessaging systems provide information as to how long a recipient hasbeen idle. This type of information indicates how much time has pastsince the recipient or sender has worked in the chat session. Further,this idle time information also typically requires the user to open thechat session window. This currently available system does not provide aneasy or simple mechanism for the user to determine which recipients havebeen waiting the longest for the reply.

The mechanism of the present invention provides a visual indication asto how long different parties have been waiting for a response or replyfrom the user. Further, in providing this visual indication, themechanism of the present invention does not require a user input togenerate the visual indication for the different chat sessions. In theillustrative embodiments, a speed at which an icon on a tool trayflashes may be set based on how long a recipient has been waiting for aresponse or reply. In these examples, the icon flashes faster when aparty has been waiting longer for a response in contrast to anotherparty who has been waiting a shorter period of time.

Of course, other types of indications may be used. For example,different colors may be used in presenting the icon for the differentchat sessions. A warming sequence of colors may be used with redindicating a “hot” chat session; this session is a chat session with thelongest elapsed period of time since a previous response. Thesegraphical indications may be applied to the windows in which the chatsessions are displayed. For example, the elapsed time may be displayedin association with the chat session. In another example, graphicalshapes may be displayed with the icon to indicate the amount of elapsedtime since a reply since the user to a recipient. Other examples ofgraphical indications include, for example, hue or color intensity,timer numbers in the tool tray icon, and flashing speed for icons.

Turning now to FIG. 4, a diagram of an instant messaging system isdepicted in accordance with a preferred embodiment of the presentinvention. In this illustrative example, instant messaging server 400provides a location for clients, such as instant messaging clients 402,404, and 406, to login. After logging into instant messaging server,these clients may exchange messages directly with each other or throughinstant messaging server 400.

In these examples, the mechanism of the present invention may beimplemented within an instant messaging client, such as instantmessaging client 406. Chat sessions handled by instant messaging client402 are presented using graphical indications to identify how longparties to a chat session have been waiting for a response to a message.In these illustrative examples, the elapsed time is tracked withininstant messaging client 402. In the instance in which messaging arepassed through instant messaging server 400, rather than directlybetween clients, the elapsed time may be tracked by instant messagingserver 400.

Turning next to FIG. 5, a diagram illustrating components used in aninstant messaging system is depicted in accordance with a preferredembodiment of the present invention. In the depicted example, instantmessaging application 500 processes messages, such as message 502received from users located on remote data processing systems. Asmessages are received, these messages are presented in dialog windows504. Messages exchanged between instant messaging application 500 and aninstant messaging application on a remote data processing system form aconversation in these examples.

Additionally, dialog windows 504 provide an interface for user input tosend messages to other users. Contact and control window 506 ispresented by instant messaging application 500 to provide the user witha list of user names, as well as other information, such as, forexample, identifying other users that are currently online. Contact andcontrol window 506 also provides an interface to allow the user to setdifferent preferences. For example, the user may set passwords requiredto access different names used in instant messaging sessions. Further, auser may employ contact and control window 506 to set other preferences,such as colors and fonts used in instant messaging application 500.

Further, the list of names presented by contact and control window 506is stored in contact list 508 in these examples. Additional user namesmay be added or deleted from contact list 508. This contact list isemployed in presenting the list of names within contact and controlwindow 506. Additionally, the user may view the status of other users oncontact and control window 506. This status may be, for example,available or busy. When the status is available, instant messagingapplication 500 will accept messages from another instant messagingapplication to start a new conversation. When the status of another useris busy, messages from instant messaging application 500 are notaccepted by the other application for that user.

In these examples, instant messaging application 500 creates a timer foreach chat session. Whenever a message is received for a chat session,the timer for that chat session is started. The timer is stopped whenthe user responds or replies to the message. Additionally, the timeralso may be stopped after the last response has been received, ratherthan when the user sends a response or message. This timer is check byinstant messaging application 500 on a periodic basis in these examples.The elapsed time in the timer is used to identify an appropriateidentification for the chat session. In this illustrative embodiment,the elapsed time is looked up in a table to identify settings, such ascolor and/or flashing speed. Based on this lookup, the color of the iconand/or flashing speed is adjusted depending on how much time haselapsed.

Turning now to FIG. 6, a diagram illustrating graphical indicationsbased on elapsed time is depicted in accordance with a preferredembodiment of the present invention. In this example, two chat sessionsare shown in display 600. These two chat sessions are displayed inwindows 602 and 604. Icons for these two chat sessions are displayed ontool tray 606. Tool tray 606 is a graphical component in a graphicaluser interface that provides an identification of windows that arecurrently present in the graphical user interface even though the usermay be unable to view all of the windows present. Tool tray 606 islocated at the bottom of the display, but may be placed in otherlocations, such as, at the top or sides of the display. Icon 608 isassociated with window 602, while icon 610 is associated with window604.

The flashing speed and/or color of icon 608 and 610 are adjusted basedon the elapsed time since a last response or reply has been made by auser. For example, the flashing speed of icon 608 is set to a fasterspeed relative to the flashing speed of icon 610 if more time haselapsed since a last reply has been made for the chat session in window604. Further, the graphical indication may include a flashing speed forwindow 602 and 604. Other graphical indications, such as, for example,colors selected for icon 608 and 610 or window 602 and 604 may be used.These colors are used to indicate comparable elapsed times for thedifferent chat sessions in these illustrative examples.

Of course, other types of graphical indications may be used. Forexample, the amount of elapsed time that has passed may be indicatedwithin the icons in tool tray 606 using graphical shapes within theicons. As illustrated, icon 608 includes a circle and icon 610 containsa larger circle. The difference in the size of the circle is used toindicate the amount of time that has elapsed for a chat session relativeto other chat sessions. As depicted, the chat session associated withicon 610 indicates that more time has elapsed since the last reply wassent as compared to the chat session for icon 608.

In FIG. 7, a flowchart of a process for managing timers for chatsessions is depicted in accordance with a preferred embodiment of thepresent invention. The process illustrated in FIG. 7 may be implementedin a component such as instant messaging application 500 in FIG. 5.

The process begins by detecting a new chat session (step 700). Next, atimer is created for the chat session (step 702). A determination ismade as to whether a message has been received for the chat session(step 704). If a message has been received, the timer is started (step706). Thereafter, a determination is made as to whether a message hasbeen sent in reply or response to the received message (step 708). If amessage has been sent, the timer is stopped (step 710) with the processthen returning to step 704 as described above.

In step 704, if a message has not been received, the process returns tostep 704. With reference again to step 708, if a message has not beensent, the process continues to return to step 708.

With reference now to FIG. 8, a flowchart of a process for generatingindications for a chat session is depicted in accordance with apreferred embodiment of the present invention. The process illustratedin FIG. 8 may be implemented in a component, such as instant messagingapplication 500.

The process begins by determining whether a polling interval has passed(step 800). This polling interval may be set at different intervalsdepending on the particular implementation. If a polling interval hasnot passed, the process continues to return to step 800.

Otherwise, the timer for that chat session is checked to identify anelapsed time (step 802). The elapsed time is looked up in a table toidentify the setting for one or more of the graphical indications forthe chat session (step 804). The indications identified in an entry inthe table for the elapsed time are generated in the display of the chatsession (step 806) with the process then returning to step 800 asdescribed above.

Thus, the present invention provides an improved method, apparatus, andcomputer instructions for facilitating instant messaging prioritizationbased on who has been waiting the longest for a reply or response. Themechanism of the present invention identifies the elapsed time since areply has been made for a chat session. Based on the elapsed time, agraphical indication is generated for the chat session. This indicationmay take various forms, including, for example, a flashing speed and/orcolor for the chat window and/or an icon in a tool tray. In this manner,a user may identify how much time has elapsed since a last response wassent for a chat session relative to other chat sessions.

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media, suchas a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, andtransmission-type media, such as digital and analog communicationslinks, wired or wireless communications links using transmission forms,such as, for example, radio frequency and light wave transmissions. Thecomputer readable media may take the form of coded formats that aredecoded for actual use in a particular data processing system.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

1. A method in a data processing system for indicating wait time forinstant messages, the method comprising: identifying an elapsed timesince a response has been sent to a recipient in a chat session beingdisplayed in a user interface; and generating an indication of theelapsed time through the user interface, wherein the indicationindicates the elapsed time since the response has been sent to therecipient in the chat session.
 2. The method of claim 1, wherein theidentifying step comprises: starting a timer for the chat session when amessage is received from a user; checking the timer for the chatsession; selecting a particular type of indication based on the timer;and presenting the particular type indication through the userinterface.
 3. The method of claim 2 further comprising: stopping thetimer in response to a reply to the message being sent to the user. 4.The method of claim 2, wherein the particular type of indication isselected from a table.
 5. The method of claim 1, wherein the identifyingstep is performed periodically.
 6. The method of claim 2, wherein theparticular type of indication includes at least one of a color, aflashing speed, a sound, and a graphical indicator.
 7. The method ofclaim 1, wherein the identifying step and the generating step isperformed for each chat session being displayed in the user interface.8. A data processing system for indicating wait time for instantmessages, the data processing system comprising: identifying means foridentifying an elapsed time since a response has been sent to arecipient in a chat session being displayed in a user interface; andgenerating means for generating an indication of the elapsed timethrough the user interface, wherein the indication indicates the elapsedtime since the response has been sent to the recipient in the chatsession.
 9. The data processing system of claim 1, wherein theidentifying means comprises: starting means for starting a timer for thechat session when a message is received from a user; checking means forchecking the timer for the chat session; selecting means for selecting aparticular type of indication based on the timer; and presenting meansfor presenting the particular type indication through the userinterface.
 10. The data processing system of claim 9 further comprising:stopping means for stopping the timer in response to a reply to themessage being sent to the user.
 11. The data processing system of claim9, wherein the particular type of indication is selected from a table.12. The data processing system of claim 8, wherein the identifying meansis initiated periodically.
 13. The data processing system of claim 9,wherein the particular type of indication includes at least one of acolor, a flashing speed, a sound, and a graphical indicator.
 14. Thedata processing system of claim 8, wherein the identifying means and thegenerating means is identified for each chat session being displayed inthe user interface.
 15. A computer program product in a computerreadable medium for indicating wait time for instant messages, thecomputer program product comprising: first instructions for identifyingan elapsed time since a response has been sent to a recipient in a chatsession being displayed in a user interface; and second instructions forgenerating an indication of the elapsed time through the user interface,wherein the indication indicates the elapsed time since the response hasbeen sent to the recipient in the chat session.
 16. The computer programproduct of claim 15, wherein the first instructions comprises: first subinstructions for starting a timer for the chat session when a message isreceived from a user; second sub instructions for checking the timer forthe chat session; third sub instructions for selecting a particular typeof indication based on the timer; and fourth sub instruction forpresenting the particular type indication through the user interface.17. The computer program product of claim 16 further comprising: thirdinstructions for stopping the timer in response to a reply to themessage being sent to the user.
 18. The computer program product ofclaim 16, wherein the particular type of indication is selected from atable.
 19. The computer program product of claim 15, wherein the firstinstructions are executed periodically.
 20. The computer program productof claim 16, wherein the particular type of indication includes at leastone of a color, a flashing speed, a sound, and a graphical indicator.21. The computer program product of claim 15, wherein the firstinstructions and the second instructions are executed for each chatsession being displayed in the user interface.